home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d22 / scsi.arc / SCSI.TXT < prev   
Encoding:
Text File  |  1990-04-05  |  12.9 KB  |  259 lines

  1.  
  2. The following is inetended for those who may have or are thinking about
  3. purchasing a SCSI subsytem.
  4.  
  5. THE HOST ADAPTER: THE FIRST PIECE OF THE PUZZLE
  6.  
  7.   Host adapters come in many flavors.  Some are well supported, others are
  8. not.  Some are intelligent, some are not.
  9.  
  10.   To decide on the correct host adapter to use is a difficult decision and
  11. one that should not be taken lightly.  Unless you are prepared to continue
  12. investing in other adapters as your systems needs grow, you need to study and
  13. understand the different types of host adapters and the application they are
  14. going to be used in.
  15.  
  16.   The simplest host adapters are cards that may have an INT13 At BIOS to
  17. support hard drives under MS-DOS.  These host adapters usually have no UNIX
  18. support as it is very difficult to do a device driver that can be made to work
  19. reliably.  Dumb cards such as these usually have timing constraints that make
  20. it almost impossible to have a UNIX driver.
  21.  
  22.   The next level of host adapter goes to the other extreme.  They are very
  23. intelligent and usually hide the SCSI bus from the operating system.  These
  24. types of adapters have a wide base of support in software, as they can run
  25. in any environment with very little software effort.  They are also expensive
  26. adapters, which may not be needed in the MS-DOS machine.  Indeed, they may be
  27. overkill for a machine that is to be relegated to the DOS environment.
  28.  
  29.   If you are going to be using MS-DOS and MS-DOS alone, then the low cost
  30. approach is not a bad one.  But if you intend to use UNIX/Novell/OS2, then
  31. the low cost approach will be a poor one.  These operating systems/environments
  32. are all multi-threaded.  That is they can issue more than one command at a
  33. time.  With an intelligent host adapter, this is easily done and managed by
  34. the host adapter.  With a low cost board, the software to do this work must
  35. be driven by the main CPU, which will incur considerable command overhead.
  36.  
  37.   Of course, there is also the support issue.  You always would like to
  38. avoid the finger pointing that can occur when using products from several
  39. companies, when a bug arises.  This is best done by buying a product that
  40. is supported by the operating system manufacturer.  There are very few
  41. SCSI host adapters supported by the operating systems manufacturers.  You
  42. need to ask them what they will support and what they won't.  A little
  43. planning in this area may solve many potential problems for you.
  44.   
  45.     Questions you should ask:
  46.     a) What operating environment will I be using?
  47.     b) Is the operating environment multi-threaded?
  48.     c) Am I going to be using several operating systems?
  49.     d) Do I care if support is from one operating system vendor?
  50.  
  51.   
  52. SCSI DEVICES AND MANUFACTURER'S CLAIMED DATA RATES
  53.  
  54.   Ignore the manufacturer's rated data rates.  They are measured on the SCSI
  55. bus assuming that no data is being transferred to the device buffer from
  56. the media and they also assume the best case data transfer (no disconnects).
  57.  
  58. To get an idea of how a device might perform, look at the clock rate of
  59. the head.  You will see a range from 7.5 Mhz to 24 Mhz.  Some devices
  60. have multiple clock rates.  These are bit zone recorded devices.  They have
  61. more sectors on the outer tracks than they do on the inner tracks.
  62.  
  63.   The data rate to the devices buffer is the rate of the clock on the head.
  64. A 7.5Mhz head moves data to the buffer at 750KB/sec and a 24Mhz clock on
  65. the head moves data at 2.4MBytes/sec.
  66.  
  67.   Data rates to/from the buffer from/to the SCSI bus are regulated by the clock
  68. rate of the dual ported buffer (where applicable).  If the buffer has a 4MHz
  69. clock, then the fastest the data can be shipped to/from the buffer is 4MBytes/
  70. sec, but if data is being shipped to/from the media from/to the buffer, then
  71. the rate that data can move across the SCSI bus is directly impacted.  For
  72. instance, if the drive is putting data into the buffer at 2.0MBytes/sec and the
  73. buffer is a 4MHz part.  The fastest data can be moved to the SCSI bus is
  74. 2.0MBytes/sec not 4MBytes/sec.  This, of course, only applies to those devices
  75. that have a dual ported buffer.  How the buffer full/empty ratios are used will
  76. also effect the data rate.
  77.  
  78.   SCSI devices, for the most part, have programmable buffer full/empty ratios
  79. stored in a mode page of the device.  NOTE:  Not all devices allow a user to
  80. reprogram these parameters.  These parameters affect when the device should and
  81. should not, get on the SCSI bus for a data transfer.  Typically, a SCSI device
  82. will ask for the bus, on a read, when there is at least 1 sector in the data
  83. buffer ready to transfer.  The transfer will start and the device will continue
  84. to put data into the buffer if possible, as data is taken out of the
  85. buffer.  If the buffer falls below the 1 sector limit, then the device will
  86. disconnect from the bus and will not reconnect until the buffer has at least
  87. one sector's worth of information.
  88.  
  89.     Questions you should ask:
  90.     a) How fast is the dual ported buffer?
  91.     b) What is the clock rate of the heads?
  92.     c) Is the device capable of synchronous transfers?
  93.     d) How is the buffer full/empty ratios calculated and implemented?
  94.  
  95.  
  96. TO BUFFER OR NOT TO BUFFER?
  97.  
  98.   The size of the buffer has a lot to do with the overall performance of the
  99. SCSI device.  Buffer sizes range from 16K to 256K.  If the buffer is not dual
  100. ported, then that implies the device cannot allow data to be moved from/to the
  101. SCSI bus while the HD is moving data to/from the buffer and vice-versa.
  102.  
  103.   If the buffer is just a buffer to smooth the data transfer, then the size of
  104. the buffer can be small if you have a host adapter capable of moving the data
  105. at the full rate of the SCSI bus.  If the adapter is dumb and cannot move data
  106. very quickly, then a larger buffer is required to minimize the disconnects/
  107. reconnects on the SCSI bus.  In this implementation, the size of the buffer
  108. will not impact nor help performance.  Also, with a dumb adapter you will
  109. find it very difficult to maintain a 1:1 interleave with this type of buffering
  110. scheme.  Typically, this is the poorest performing SCSI device.
  111.  
  112.   If the device has a read ahead buffer, then sequential accesses will be
  113. much quicker.  Although the more fragmented the file system the worse the
  114. worse the performance.  In this case, the size is dependent on the overall
  115. implementation.  If the read ahead will abort at the end of a track, then the
  116. buffer need not be larger than the largest track on a device.  If the read
  117. ahead is aborted at a cylinder switch, then the buffer size should be large
  118. enough to accommodate the largest cylinder.  For the most part, this is a good
  119. implementation.
  120.  
  121.   If the device has a read ahead cache buffer, then this, like the read ahead
  122. buffer, will give good sequential accesses, but still poor performance on a
  123. very fragmented filesystem.  As data in the buffer is recoverable, because
  124. this is a cache, some performance gains will be noticed in a multi-user
  125. environment.  The same rules for the read ahead buffer above apply when it
  126. concerns the size of the buffer.  A better performance implementation.
  127.  
  128.   If the device has a segmented cache buffer, then this will yield the
  129. best performance available in all operating environments.  It must be tunable
  130. so you can match the characteristics of the operating environment.  The size
  131. of the buffer should not be less than 64K for this type of implementation to
  132. be effective,  but it can be as large as the vendor chooses and the bigger
  133. the better.  This is the best performance choice.
  134.  
  135.     Questions you should ask:
  136.     a) What type of buffer algorithm do you use?  (i.e. read-ahead, cache)
  137.     b) Is the buffer algorithm programmable?
  138.     c) What is the size of the buffer?
  139.     d) What is the clock (or resolution) of the buffer?
  140.     e) Is the buffer dual ported?
  141.  
  142.  
  143. SCSI COMMAND OVERHEAD
  144.  
  145.   SCSI command overhead is a much discussed topic when users opt to go with
  146. SCSI and generally a very heated topic.  In the past, the overhead was very
  147. high (on the order of 3 milli-seconds).  Today SCSI overhead, for the device,
  148. is down to 1 milli-second and less.  Some devices have multiple processors, one
  149. for running the SCSI bus and one for the device electronics.  These type of
  150. devices have less overhead than a single processor device as they can do things
  151. in parallel.  Be aware of the manufacturers specs.  Though they don't lie, they
  152. publish the best case overhead times.  SCSI command overhead, as measured by
  153. the manufacturer, is typically taken from the time a TEST UNIT READY command
  154. takes to complete. The problem with that is this command takes the shortest
  155. path through the vendor's firmware as it does not require any data transfers.
  156.  
  157.   The best way to measure the overhead for a SCSI device is to issue a write
  158. command and then issue the same command again, to ensure the device is at the
  159. track it should be.  Using a logic analyzer, measure the time from the last
  160. command byte to the ending status phase for the second write command.  Subtract
  161. the data phase of the command and you will have a more believable idea of the
  162. overhead.  The reason you want to use a write command is to eliminate any disk
  163. latency that a read command would generate.
  164.  
  165.   Measuring overhead from the system level is virtually impossible, as you also
  166. have the host adapter overhead and then the bus and CPU rates come into play.
  167.  
  168.     Questions you should ask:
  169.     a) What is the SCSI command overhead for your controller?
  170.     b) How is the overhead measured?
  171.     c) Does your device have multiple processors?
  172.     d) What is the clock rate of the processors?
  173.  
  174.  
  175. BENCHMARKING MADE EASY??
  176.  
  177.   Throw away CORETEST, or disregard the seek times and the size of the
  178. request.  Seek times on a SCSI device cannot be measured at the BIOS level
  179. unless the benchmark can be told what physical parameters to use.
  180.  
  181.   SCSI is a logical block interface and has no physical characteristics.  The
  182. number of heads, sectors, and cylinders at the BIOS level are all incorrect, so
  183. the seek times that virtually all of the benchmark programs use will not yield
  184. accurate seek times.
  185.  
  186.   You cannot use the manufacturer's seek rate as it is measured at the
  187. mechanical level and not at the SCSI bus level.  To test the seek times, you
  188. almost have to write your own benchmark.  If 'adaptex' was going to be around
  189. I would have a program that would do just that for SCSI devices and post it,
  190. but alas.
  191.  
  192.   CORETEST also reads the same data over and over again, so a SCSI device that
  193. has a read ahead buffer, will not be accurately measured.
  194.  
  195.   In order to get a fair idea of the data rates that a SCSI device can yield
  196. requires you to measure data transfers in the following ways:
  197.  
  198.     1) Sequentially
  199.     2) Random (1/3 stroke, preferred as you can do that at the BIOS level)
  200.     3) Read the same data over and over again.
  201.  
  202.   Now that will take care of the single-threaded benchmark, but what UNIX/XENIX
  203. and other multi-threaded operating environments?  While none of the current
  204. benchmarks really do a fair job of measuring the correct thing for these
  205. environments, they can yield some useful information.
  206.  
  207.   With a multi-threaded environment, you should not only consider the average
  208. access time and the data rate, but more importantly.  How does the SCSI
  209. implementation I have chosen effect the overall throughput of my system?  While
  210. in a single-threaded environment most devices will benchmark well, device
  211. characteristics change dramatically in a multi-threaded mode.
  212.  
  213.   This is due in part to the devices ability to efficiently arbitrate for the
  214. SCSI bus.  Some devices may take as long as 3 milli-seconds to complete an
  215. arbitration cycle, while others take only 1 milli-second.  The only way you
  216. can judge the devices is via a logic analyzer.  You are basically looking
  217. for the overall usage of the SCSI bus.
  218.  
  219.     Questions you should ask:
  220.     a) How can I measure the average seek time?
  221.     b) What environment will this implementation be used in?
  222.     c) How can I best judge the performance in this environment?
  223.  
  224.  
  225. PERSONAL PERFORMANCE RATING
  226.  
  227. If I had to rate, regardless of capacity, the best performing SCSI devices
  228. that I have used, the list would go:
  229.  
  230. Quantum        (3 1/2") 64K segmentable cache buffer, RLL 2.7, ZBR
  231.              async/sync
  232. Quantum        (5 1/4") 64K segmentable circular cache buffer, RLL 2.7, async
  233. Imprimis    (5 1/4") 32K read ahead buffer (*), RLL 2.7, ZBR, async/sync
  234. Maxtor        (5 1/4") 45K read ahead buffer (*), RLL 2.7, async/sync
  235. Micropolis    (5 1/4")
  236. Priam        (5 1/4")
  237. Imprimis    (3 1/2")
  238. Maxtor        (3 1/2") 8K buffer, RLL 2.7, async
  239. Seagate        (5 1/4") Basic buffer
  240. Conner        (3 1/2") Basic buffer
  241. Rodime        (3 1/2") Basic buffer
  242.  
  243. * Drives come with read ahead disabled.  It can only be activated via
  244.   software
  245.  
  246. Recomended products to avoid
  247.  
  248. Cast/Newbury    Do not meet SCSI standard (Rev17B)
  249. Microscience    Do not meet SCSI standard (Rev17B)
  250.  
  251. TERMS
  252. ZBR    Zone Bit Recorded
  253.  
  254.  
  255.             Roy Neese
  256.             Adaptec Central Field Applications Engineer
  257.             UUCP @ {texbell,attctc}!cpe!adaptex!neese
  258.                 merch!adaptex!neese
  259.